package modelo.datos;

import java.sql.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.ManyToMany;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name="aviso",schema="public")
@PrimaryKeyJoinColumn(name="codigo")
public class aviso {

	@Id
	@Column(name="codigo", length=5, nullable=false)
	private String codaviso;
	@Column(name="titulo")
	private String titulo;
	@Column(name="fechapublicacion")
	private Date fechapub;
	@Column(name="fechafin")
	private Date fechafinpub;
	@Column(name="email")
	private String email;
	@Column(name="Status")
	private String status;
	@Column(name="imagen")
	private Byte imagen;
	
	//no se que es Esto 
	String nuevo; 
	
	@OneToOne(cascade= CascadeType.ALL)
	@JoinColumn(name="codciudad")
	private ciudad ciudad;
	
	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="codareaprofesional")
	private areaprofesional area;
	
	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="codportal")
	private portal portal;
	
	@OneToMany(cascade= CascadeType.ALL)
	@JoinColumn(name="codaviso")
	private List<sugerencia> ListaSugerencias;
	
	@ManyToMany(cascade = {CascadeType.ALL},mappedBy="avisos")
	private Set<nivel_instruccion> nivelinst=new HashSet();
	
	@ManyToMany(cascade = {CascadeType.ALL},mappedBy="requerimientos")
	private Set<requerimiento> requerimiento=new HashSet();
	
	public aviso ( String codaviso,	String titulo,	Date fechapub,Date fechafinpub,
	int vacante,	String email,	String status,	String nuevo)
	{
		this.codaviso=codaviso;
		this.titulo=titulo;
		this.fechapub=fechapub;
		this.fechafinpub=fechafinpub;
	    this.email=email;
	    this.status=status;
	    this.nuevo=nuevo;
	}

	public aviso() {
		// TODO Auto-generated constructor stub
	}

	public String getCodaviso() {
		return codaviso;
	}

	public void setCodaviso(String codaviso) {
		this.codaviso = codaviso;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public Date getFechapub() {
		return fechapub;
	}

	public void setFechapub(Date fechapub) {
		this.fechapub = fechapub;
	}

	public Date getFechafinpub() {
		return fechafinpub;
	}

	public void setFechafinpub(Date date) {
		this.fechafinpub = date;
	}


	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getNuevo() {
		return nuevo;
	}

	public void setNuevo(String nuevo) {
		this.nuevo = nuevo;
	}

}

